package cn.cttic.order.api.domain.vo;

import cn.cttic.common.core.validate.AddGroup;
import cn.cttic.common.core.validate.EditGroup;
import cn.cttic.order.api.domain.BaseReconciliation;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import cn.cttic.common.excel.annotation.ExcelDictFormat;
import cn.cttic.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;



/**
 * 对账管理视图对象 base_reconciliation
 *
 * @author Times.Studio
 * @date 2025-01-02
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BaseReconciliation.class)
public class BaseReconciliationVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @ExcelProperty(value = "")
    private String id;

    /**
     * 服务单位
     */
    @ExcelProperty(value = "服务单位")
    private String companyId;

    /**
     * 服务单位名称
     */
    @ExcelProperty(value = "服务单位名称")
    private String companyName;

    /**
     * 服务范围
     */
    @ExcelProperty(value = "服务范围")
    private String periodDescription;

    /**
     * 服务开始日期
     */
    @ExcelProperty(value = "服务开始日期")
    private LocalDateTime periodBeginDate;

    /**
     * 服务结束日期
     */
    @ExcelProperty(value = "服务结束日期")
    private LocalDateTime periodEndDate;

    /**
     * 服务类型
     */
    @ExcelProperty(value = "服务类型")
    private String orderType;

    /**
     * 服务数量
     */
    @ExcelProperty(value = "服务数量")
    private Integer orderCount;

    /**
     * 服务状态
     */
    @ExcelProperty(value = "服务状态")
    private Integer reconciliationStatus;

    /**
     * 服务状态
     */
    @ExcelProperty(value = "服务状态")
    private Integer reconciliationStatusName;

    /**
     * 核销意见
     */
    @ExcelProperty(value = "核销意见")
    private String reconciliationReason;

    /**
     * 开始核销
     */
    @ExcelProperty(value = "开始核销")
    private Integer startingWriteOff;

    /**
     * 核销状态
     */
    @ExcelProperty(value = "核销状态")
    private Integer writeOffStatus;

    /**
     * 服务状态
     */
    @ExcelProperty(value = "服务状态")
    private Integer writeOffStatusName;

    /**
     * 核销意见
     */
    @ExcelProperty(value = "核销意见")
    private String writeOffReason;

    /**
     * 核销审批单号
     */
    @ExcelProperty(value = "核销审批单号")
    private String writeOffApprovalNo;

    /**
     * 核销凭证
     */
    @ExcelProperty(value = "核销凭证")
    private String writeOffProof;

    /**
     * 是否开票
     */
    @ExcelProperty(value = "是否开票")
    private String hasReceipt;

    /**
     * 服务发票
     */
    @ExcelProperty(value = "服务发票")
    private String receiptInfo;

    /**
     * 支付凭证
     */
    @ExcelProperty(value = "支付凭证")
    private String paidProof;

    /**
     * 创建日期
     */
    @ExcelProperty(value = "创建日期")
    private Date createTime;


}
